package com.openlogic.logic.service.logic;

import javax.validation.constraints.NotNull;

import com.openlogic.api.logic.entity.RuleModelDeploy;
import com.openlogic.common.logic.decision.tree.model.TreeNode;

/**
* @ClassName: RuleDecisionTreeService
* @Description: 决策树Service接口层
* @author weiyongpeng
* @date 2024年7月14日 上午10:15:24
 */
public interface RuleDecisionTreeService {
	
	/**
	* 描述：根据决策id查询决策树信息
	* @Title: findRuleDeployById
	* @param ruleModelDeploy
	* @return
	* @author weiyongpeng
	* @date  2024年9月27日 上午10:51:40
	 */
	public RuleModelDeploy findRuleDeployById(RuleModelDeploy ruleModelDeploy);
	
	/**
	* 描述：保存决策树数据集
	* @Title: save
	* @param ruleModelDeploy
	* @return
	* @author weiyongpeng
	* @date  2024年7月15日 下午7:22:05
	 */
	public int save(RuleModelDeploy ruleModelDeploy);
	

	/**
	* 描述：修改决策树
	* @Title: updateRuleModel
	* @param ruleModelDeploy
	* @return
	* @author weiyongpeng
	* @date  2024年7月15日 下午7:20:09
	 */
	public int updateRuleModel(RuleModelDeploy ruleModelDeploy);

	/**
	* 描述：修改决策树状态 启用/停用
	* @Title: updateStatus
	* @param ruleModelDeploy
	* @return
	* @author weiyongpeng
	* @date  2024年7月16日 上午10:33:50
	 */
	public boolean updateStatus(RuleModelDeploy ruleModelDeploy);

	/**
	* 描述：删除决策树
	* @Title: delete
	* @param ruleModelKey
	* @return
	* @author weiyongpeng
	* @date  2024年7月16日 上午11:30:05
	 */
	public boolean delete(String ruleModelKey);

	/**
	* 描述：决策树debug测试
	* @Title: debug
	* @param dataInfo
	* @param decisionTree
	* @return
	* @author weiyongpeng
	* @date  2024年9月27日 上午11:05:04
	 */
	public TreeNode debug(String dataInfo, String decisionTree);

	/**
	* 描述：决策树执行
	* @Title: execuateRule
	* @param datas
	* @param id
	* @param operateNo
	* @return
	* @author weiyongpeng
	* @date  2024年10月24日 下午5:47:55
	 */
	public TreeNode execuateRule(String datas, @NotNull String id, String operateNo);

}
